/*
 *
 * -------------------------------------------------------------------------------------------------
 *                            COPYRIGHT(C) BOCO HEALTH 2016
 * -------------------------------------------------------------------------------------------------
 *
 * =================================================================================================
 *  *HISTORY
 *
 *      Tag                Date            Author           Description
 * =================================================================================================
 *      created            2017/1/17      caodailu        create
 * =================================================================================================
 *
 *
 */

package com.boco.familyuser.view.custom_im;

import android.content.Intent;
import android.support.v4.app.Fragment;

import com.alibaba.mobileim.aop.Pointcut;
import com.alibaba.mobileim.aop.custom.IMConversationListOperation;
import com.alibaba.mobileim.conversation.YWConversation;
import com.alibaba.mobileim.conversation.YWConversationType;
import com.alibaba.mobileim.conversation.YWCustomConversationBody;
import com.boco.familyuser.view.im.ContactSystemMessageActivity;
import com.boco.familyuser.view.main.MainActivity;

public class ConversationListOperationCustom extends IMConversationListOperation {

    public ConversationListOperationCustom(Pointcut pointcut) {
        super(pointcut);
    }

//    /**
//     * 返回自定义会话和群会话的头像 url
//     * 该方法只适用设置自定义会话和群会话的头像，设置单聊会话头像请参考{@link com.taobao.openimui.sample.UserProfileSampleHelper}
//     *
//     * @param fragment
//     * @param conversation 会话 可以通过 conversation.getConversationId拿到用户设置的会话id以根据不同的逻辑显示不同的头像
//     * @return
//     */
//    @Override
//    public String getConversationHeadPath(Fragment fragment,
//                                          YWConversation conversation) {
//        if (conversation.getConversationType() == YWConversationType.Tribe){
//            return "http://7xlpp2.com1.z0.glb.clouddn.com/%40/res/ugc/12D76150-4D07-4A78-9F0C-A18FDE7B7047.png";
//        }
//        //如果开发者需要异步获取url的话，先return null，在url获取到后，调用notifyContactProfileUpdate进行刷新
//        //刷新后，SDK会再次调用getConversationHeadPath方法
//
//        //刷新调用，请参考：LoginSampleHelper.getInstance().getIMKit().getContactService().notifyContactProfileUpdate();
//
//        return "http://tp2.sinaimg.cn/1721410501/50/40033657718/0";
//    }
//
//    /**
//     * 返回自定义会话和群会话的默认头像 如返回本地的 R.drawable.test
//     * 该方法只适用设置自定义会话和群会话的头像，设置单聊会话头像请参考{@link com.taobao.openimui.sample.UserProfileSampleHelper}
//     *
//     * @param fragment
//     * @param conversation
//     * @return
//     */
//    @Override
//    public int getConversationDefaultHead(Fragment fragment,
//                                          YWConversation conversation) {
//        if (conversation.getConversationType() == YWConversationType.Custom) {
//            YWCustomConversationBody body = (YWCustomConversationBody) conversation.getConversationBody();
//            String conversationId = body.getIdentity();
//            if (conversationId.equals(FragmentTabs.SYSTEM_TRIBE_CONVERSATION)) {
//                return R.drawable.aliwx_tribe_head_default;
//            } else if (conversationId.equals(FragmentTabs.SYSTEM_FRIEND_REQ_CONVERSATION)) {
//                return R.drawable.aliwx_head_default;
//            } else {
//                return R.drawable.aliwx_head_default;
//            }
//        } else if (conversation.getConversationType() == YWConversationType.Tribe){
//            return R.drawable.aliwx_tribe_head_default;
//        }
//        return 0;
//    }

    /**
     * 返回自定义会话的名称
     *
     * @param fragment
     * @param conversation
     * @return 这里的myconversatoin或者custom_view_conversation是调用sdk方法插入的自定义会话id.
     * 具体参考CustomConversationHelper
     */
    @Override
    public String getConversationName(Fragment fragment,
                                      YWConversation conversation) {
        if (conversation.getConversationBody() instanceof YWCustomConversationBody) {
            YWCustomConversationBody body = (YWCustomConversationBody) conversation.getConversationBody();
             if (body.getIdentity().equals(MainActivity.SYSTEM_FRIEND_REQ_CONVERSATION)) {
                return "联系人系统消息";
            }
        }

        return null;
    }

    /**
     * 定制会话点击事件，该方法可以定制所有的会话类型，包括单聊、群聊、自定义会话
     *
     * @param fragment     会话列表fragment
     * @param conversation 当前点击的会话对象
     * @return true: 使用用户自定义的点击事件  false：使用SDK默认的点击事件
     */
    @Override
    public boolean onItemClick(Fragment fragment, YWConversation conversation) {
//        YWConversationType type = conversation.getConversationType();
//        if (type == YWConversationType.P2P){
//            //TODO 单聊会话点击事件
//            return true;
//        } else if (type == YWConversationType.Tribe){
//            //TODO 群会话点击事件
//            return true;
//        } else if (type == YWConversationType.Custom){
//            //TODO 自定义会话点击事件
//            return true;
//        }
        if (conversation.getConversationType() == YWConversationType.Custom) {
            YWCustomConversationBody body = (YWCustomConversationBody) conversation.getConversationBody();
            String conversationId = body.getIdentity();
            if (conversationId.startsWith(MainActivity.SYSTEM_FRIEND_REQ_CONVERSATION)) {
                Intent intent = new Intent(fragment.getActivity(), ContactSystemMessageActivity.class);
                fragment.getActivity().startActivity(intent);
                return true;
            }
//            else if (conversationId.startsWith(FragmentTabs.SYSTEM_TRIBE_CONVERSATION)) {
//                Intent intent = new Intent(DemoApplication.getContext(), TribeSystemMessageActivity.class);
//                fragment.getActivity().startActivity(intent);
//                return true;
//            } else if (conversationId.startsWith(FragmentTabs.RELATED_ACCOUNT)){
//                String loginId = YWAPI.getLoginAccountList().get(1);
//                IMNotificationUtils.getInstance().showToast(loginId, fragment.getContext());
//                YWIMKit imKit = YWAPI.getIMKitInstance(AccountUtils.getShortUserID(loginId), AccountInfoTools.getAppkeyFromUserId(loginId));
//                Intent intent = imKit.getConversationActivityIntent();
//                fragment.getActivity().startActivity(intent);
//            }
        }

        return false;
    }

    /**
     * 定制会话长按事件，该方法可以定制所有的会话类型
     *
     * @param fragment     会话列表fragment
     * @param conversation 当前点击的会话对象
     * @return true: 使用用户自定义的长按事件  false：使用SDK默认的长按事件
     */
    @Override
    public boolean onConversationItemLongClick(Fragment fragment, YWConversation conversation) {
//        YWConversationType type = conversation.getConversationType();
//        if (type == YWConversationType.P2P){
//            //TODO 单聊会话长按事件
//            return true;
//        } else if (type == YWConversationType.Tribe){
//            //TODO 群会话长按事件
//            return true;
//        } else if (type == YWConversationType.Custom){
//            //TODO 自定义会话长按事件
//            return true;
//        }
        return false;
    }
}